The wide availability of the Internet permits an ever increasing number of users to download data from remote systems onto their local system. These actions are typically done through a browser software program which forms logical network connections with a remote system, and then uses the Hyper-Text Transport Protocol (HTTP) to move data from the remote system. The data may, for example, describe or consist of a set of Hyper-Text Markup Language (HTML) instructions. Such data frequently indicates or includes computer program code that is ultimately executed on the local machine. For example, the HTML instructions from a remote system may include indication of an "applet" program, written in the Java.TM. language developed by Sun Microsystems, Inc.
An applet is an example of a program which is typically embedded within a Web page, and which is executed when the Web page is browsed. Several restrictions apply to the design and operation of applets. Some of these restrictions relate to secure operation and execution of the applet on the client system. This arises from a concern most users have regarding the potentially devastating effects which can be caused by execution of poorly or maliciously designed code on their local system. The security restrictions imposed on applets have the result that applets loaded onto a local system from over the network cannot make network connections to hosts other than the host from which they are downloaded from. In addition, unsolicited information cannot be read from or written to the local computer system (hard disk) by an applet downloaded from a remote host. Moreover, applets have no capabilities for directly communicating with other applets. Because of these significant limitations, applets can generally be used for very little other than displaying data or managing user inputs.
Existing systems have thus been able to use applets in very limited ways. The above described restrictive security model for applets provided tight control over information flowing to and from applets, and thus allowed users to be assured that they were safe in loading applets down onto their local system for execution. However, several drawbacks result from the design and use of applets in existing systems.
First, existing systems do not permit a user of a first network application, for example a user of a chat room application, to communicate with another user who is not currently using that same network application, but who is currently running his or her local browser. In addition, existing systems provide no mechanisms for users of a network application, for example a shared whiteboard application, to determine whether or not applets are being run by other users that are potentially communicative with the applet of the local user. This is the consequence of preventing direct communication between applets.
For these reasons and others, it would be desirable to have a system which permits programs implementing a restrictive security model to communicate without otherwise compromising that security model. The new system shall allow such programs to communicate regardless of whether they were downloaded from a common network server, and further regardless of whether they are both currently running a common network application client. In addition, the new system should enable users to determine if other users are currently available for such inter-program communications.